﻿using System;

namespace GN.Pay.TradeChannel
{
    /// <summary>
    /// 退款申请信息
    /// </summary>
    public interface IRefundApplyInfo
    {
        /// <summary>
        /// 获取退款批号
        /// </summary>
        string RefundNo { get; }

        /// <summary>
        /// 获取订单号(与交易号至少一项不能为空)
        /// </summary>
        string OrderNo { get; set; }

        /// <summary>
        /// 获取交易号(与订单号至少一项不能为空)
        /// </summary>
        string TradeNo { get; }

        /// <summary>
        /// 获取订单金额
        /// </summary>
        decimal OrderMoney { get; }

        /// <summary>
        /// 申请时间
        /// </summary>
        DateTime ApplyTime { get; }

        /// <summary>
        /// 实际付款时间
        /// </summary>
        DateTime PayTime { get; }

        /// <summary>
        /// 申请金额
        /// </summary>
        decimal ApplyMoney { get; }
        
        /// <summary>
        /// 获取退款原因
        /// </summary>
        string RefundReason { get; }

        /// <summary>
        /// 获取扩展参数
        /// </summary>
        string ExtraParam { get; }
    }
}